From: cl349@firebug.cl.cam.ac.uk Date: Wed, 24 May 2006 18:41:47 +0000 (+0100) Subject: Fix IDE CD-drive PIO mode. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16025^2~22 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=ebdd477d44a38e6bb9cd903404d8354135bf1747;p=xen.git Fix IDE CD-drive PIO mode. CD drives in PIO mode don't work under Xen because of a change in Linux between 2.6.12 and 2.6.16, as a result of the following thread: http://lists.parisc-linux.org/pipermail/parisc-linux/2005-August/027197.html The change breaks systems which have highmem and a swiotlb because the ide-cd driver doesn't use the swiotlb, resulting in read/writes to/from highmem pages in PIO mode not working any longer. Xen kernels usually have both highmem and a swiotlb. Signed-off-by: Christian Limpach --- diff --git a/patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch b/patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch new file mode 100644 index 0000000000..0892117255 --- /dev/null +++ b/patches/linux-2.6.16.13/fix-ide-cd-pio-mode.patch @@ -0,0 +1,18 @@ +diff -ru ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c ./drivers/ide/ide-lib.c +--- ../pristine-linux-2.6.16.13/drivers/ide/ide-lib.c 2006-05-02 22:38:44.000000000 +0100 ++++ ./drivers/ide/ide-lib.c 2006-05-24 18:37:05.000000000 +0100 +@@ -410,10 +410,10 @@ + { + u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */ + +- if (!PCI_DMA_BUS_IS_PHYS) { +- addr = BLK_BOUNCE_ANY; +- } else if (on && drive->media == ide_disk) { +- if (HWIF(drive)->pci_dev) ++ if (on && drive->media == ide_disk) { ++ if (!PCI_DMA_BUS_IS_PHYS) ++ addr = BLK_BOUNCE_ANY; ++ else if (HWIF(drive)->pci_dev) + addr = HWIF(drive)->pci_dev->dma_mask; + } +